package com.guomei.service.curse;

import com.guomei.bean.curse.AuthorizeChannelCode;
import com.guomei.bean.curse.Channel;
import com.guomei.utils.PageData;
import com.guomei.utils.Result;

import java.util.List;

/**
 * 渠道服务接口
 */
public interface ChannelService {
    
    /**
     * 根据ID查询
     */
    Channel getById(Long id);
    
    /**
     * 查询所有
     */
    List<Channel> getAll();
    
    /**
     * 条件查询（分页）
     */
    Result<?> getByCondition(Channel channel);
    
    /**
     * 新增
     */
    boolean save(Channel channel);
    
    /**
     * 批量新增
     */
    boolean batchSave(List<Channel> channels);
    
    /**
     * 更新
     */
    boolean update(Channel channel);
    
    /**
     * 根据ID删除
     */
    boolean removeById(Long id);
    
    /**
     * 批量删除
     */
    boolean batchRemove(List<Long> ids);
    
    /**
     * 根据渠道编码查询
     */
    Channel getByChannelCode(String channelCode);
    
    /**
     * 根据渠道密钥查询
     */
    Channel getByChannelSecret(String channelSecret);
    
    /**
     * 根据状态查询
     */
    List<Channel> getByStatus(Short status);
    
    /**
     * 生成渠道密钥
     */
    String generateChannelSecret();
    
    /**
     * 验证渠道密钥
     */
    boolean validateChannelSecret(String channelSecret);


    /**
     * 授权渠道编码给用户
     */
    Result<?> authorizeChannelCode(AuthorizeChannelCode authorizeChannelCode);
}
